﻿using System.IO;
using System.Windows.Forms;
using Styx;
using Styx.Helpers;

namespace ShutUp_AIML
{
    public class ShutUpSettings : Settings
    {
        public static ShutUpSettings Instance = new ShutUpSettings();

        public ShutUpSettings()
            : base(Application.StartupPath + "\\Settings\\ShutUp-AIML\\ShutUp_Settings_" + StyxWoW.Me.Name + ".xml")
        {
            Load();
        }

        ~ShutUpSettings()
        {
            Save();
        }

        [Setting(Explanation = "myName List"), DefaultValue(null)]
        public string[] myName_list { get; set; }

        [Setting(Explanation = "save log"), DefaultValue(true)]
        public bool saveLog { get; set; }

        [Setting(Explanation = "use a random answer"), DefaultValue(true)]
        public bool answerUseRnd { get; set; }

        [Setting(Explanation = "use AIML for Answer"), DefaultValue(true)]
        public bool answerUseAIML { get; set; }

        [Setting(Explanation = "answer at myName"), DefaultValue(false)]
        public bool myName_answer { get; set; }

        [Setting(Explanation = "answer after x sec + 0,33 sec/letter"), DefaultValue(1)]
        public int answerAfterSec { get; set; }

        [Setting(Explanation = "ignore all players"), DefaultValue(false)]
        public bool ignoAll { get; set; }

        [Setting(Explanation = "ignore player after X whispers"), DefaultValue(true)]
        public bool ignoXW { get; set; }

        [Setting(Explanation = "soft igno after"), DefaultValue(2)]
        public int softIgnoAfter { get; set; }

        [Setting(Explanation = "no player ignore"), DefaultValue(false)]
        public bool ignoNo { get; set; }

        [Setting(Explanation = "use global friendlist"), DefaultValue(true)]
        public bool UseFriedlist1 { get; set; }

        [Setting(Explanation = "use guild memberlist"), DefaultValue(true)]
        public bool UseGuildMembersList { get; set; }

        [Setting(Explanation = "use guild master"), DefaultValue(true)]
        public bool UseGuildMaster { get; set; }

        [Setting(Explanation = "use guild offislist"), DefaultValue(true)]
        public bool UseGuildOffisList { get; set; }

        [Setting(Explanation = "use inGame Friendlist"), DefaultValue(true)]
        public bool UseInGameFriedlist { get; set; }

        [Setting(Explanation = "use Bnet Friendlist"), DefaultValue(true)]
        public bool UseBNetFriedlist { get; set; }

        [Setting(Explanation = "play sound by unknown"), DefaultValue(false)]
        public bool SoundByUnknown { get; set; }

        [Setting(Explanation = "play sound by friend"), DefaultValue(false)]
        public bool SoundByFriend { get; set; }

        [Setting(Explanation = "play sound by myName"), DefaultValue(false)]
        public bool SoundByMyName { get; set; }

        [Setting(Explanation = "answer a Friend"), DefaultValue(false)]
        public bool answerWisper_Friends { get; set; }

        [Setting(Explanation = "answer a unknown whisper"), DefaultValue(true)]
        public bool answerWisper_unknown { get; set; }

        [Setting(Explanation = "selected sound by unknown"), DefaultValue("siren1.wav")]
        public string selectedSoundUnknown { get; set; }

        [Setting(Explanation = "selected sound by Friends"), DefaultValue("siren1.wav")]
        public string selectedSoundFriends { get; set; }

        [Setting(Explanation = "selected sound by myName"), DefaultValue("siren1.wav")]
        public string selectedSoundMyName { get; set; }

        [Setting(Explanation = "soft igno at friends"), DefaultValue(true)]
        public bool softIgnoFriend { get; set; }

        [Setting(Explanation = "soft igno friend after"), DefaultValue(2)]
        public int softIgnoFrAfter { get; set; }

        [Setting(Explanation = "ingame Ignore?"), DefaultValue(false)]
        public bool ingameIgno { get; set; }

        [Setting(Explanation = "how many soundloop"), DefaultValue(3)]
        public int SoundLoop { get; set; }

        [Setting(Explanation = "soundloop every Xsec"), DefaultValue(6)]
        public int SoundLoopEvery { get; set; }

        [Setting(Explanation = "use external soundplayer at unknown?"), DefaultValue(false)]
        public bool useExternalPlayer_unknown { get; set; }

        [Setting(Explanation = "use external soundplayer at Friends?"), DefaultValue(false)]
        public bool useExternalPlayer_Friends { get; set; }

        [Setting(Explanation = "use external soundplayer at myName?"), DefaultValue(false)]
        public bool useExternalPlayer_myName { get; set; }

        [Setting(Explanation = "use NotifyIcon?"), DefaultValue(false)]
        public bool useNotifyIcon { get; set; }

    }
}

